/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package agenda.controle;

import agenda.bean.Cidade;
import agenda.bean.Cliente;
import agenda.dao.CidadeDAO;
import agenda.dao.ClienteDAO;
import agenda.dao.Conexao;
import agenda.tela.TelaPesquisa;
import java.util.List;

/**
 *
 * @author Xand
 */
public class ControleCliente {
    private ClienteDAO dao = null;
    private CidadeDAO daoCidade = null;

    public ControleCliente() {
        dao = new ClienteDAO();
        daoCidade = new CidadeDAO();
    }

    public List<Cidade> carregaCidades(String filtro) {
        return daoCidade.select(filtro);
    }

    public boolean gravar(Cliente c) {
        if (c.getId() == null || c.getId() == 0) {
            dao.insert(c);
        } else {
            dao.update(c);
        }
        return Conexao.commit();
    }

    public Cliente pesquisar() {
        TelaPesquisa tp = new TelaPesquisa(null, true, dao.getSqlPesquisa());
        tp.setVisible(true);
        // depois pegar o registro selecionado.
        Integer id = tp.getIdSelecionado();
        tp.dispose();
        return carregaCliente(id);
    }

    public Cliente carregaCliente(Integer id) {
        List<Cliente> cliente = dao.select("id = " + id);
        if (cliente.isEmpty()) {
            return new Cliente();
        } else {
            return cliente.get(0);
        }
    }

    public boolean excluir(Integer id) {
        dao.delete(id);
        return Conexao.commit();
    }

    public Cidade pesquisaCidade() {
        TelaPesquisa tp = new TelaPesquisa(null, true, daoCidade.getSqlPesquisa());
        tp.setVisible(true);
        // quando a tela fechar volta.
        Integer id = tp.getIdSelecionado();
        tp.dispose();
        List<Cidade> cidades = daoCidade.select("id = " + id);
        if (cidades.isEmpty()) {
            return new Cidade();
        } else {
            return cidades.get(0);
        }
    }


}

















